[アップデート] Amazon MWAAが新しくInvokeRestAPIをサポートし簡単にREST APIが叩けるようになりました
こんにちは。サービス開発室の武田です。
Amazon MWAA(Managed Workflows for Apache Airflow)で、新しく InvokeRestAPI というAPIが追加されました。
MWAAではWeb管理コンソールが提供されていますが、処理の自動化を考えた場合、プログラムやシェルから扱えた方が簡単です。これまでもREST APIを使用すること自体は可能だったのですが、CreateWebLoginToken
をたたいて、自分でURL組み立て……と手順が煩雑でした。今回追加されたInvokeRestAPI
を使用することで、シンプルな操作でAirflowのREST APIをたたけるようになりました。
要件の整理
InvokeRestAPI
を使用するための事前条件を整理しました。
- MWAAのバージョン:2.4.3以上
- 必要な権限:
airflow:InvokeRestAPI
- AWS CLI v2:2.18.13以上(他のSDKについては割愛)
AWS CLIでやってみた
それでは実際にAWS CLIを用いてInvokeRestAPI
をたたいてみましょう。こちらに出来立てのMWAA環境がありますのでこちらを使用していきます。
今回は試しに変数を操作してみます。変数は/variables
というエンドポイントが用意されています。
InvokeRestAPI
はName
、Path
、Method
が必須パラメーターです。それぞれ、MWAA環境名、APIのパス、HTTPメソッドを指定します。たたくエンドポイントによって、Body
やQueryParameters
で値の指定ができます。
今回はまっさらな環境を用意したので、変数を登録してみましょう。
$ aws mwaa invoke-rest-api --name MyAirflowEnvironment --path '/variables' --method POST --body '{"key":"name","description":"post aws cli","value":"classmethod"}'
{
"RestApiStatusCode": 200,
"RestApiResponse": {
"description": "post aws cli",
"key": "name",
"value": "classmethod"
}
}
ステータス200
が返ってきて成功してそうです。登録した値を取得してみましょう。
$ aws mwaa invoke-rest-api --name MyAirflowEnvironment --path '/variables' --method GET
{
"RestApiStatusCode": 200,
"RestApiResponse": {
"total_entries": 1,
"variables": [
{
"description": "post aws cli",
"key": "name",
"value": "classmethod"
}
]
}
}
先ほどとの違いはmethod
にGET
を指定している点です。ちゃんと取得できています。REST APIなので使い慣れた感じで使用できていいですね。
Webコンソールからも確認してみました。当たり前ですがちゃんと登録されていました。
まとめ
MWAAのREST APIに簡単にアクセスできるAPIが追加されました。これまで自動化などで煩雑な処理をしていた部分がスッキリしそうです。導入の検討や既存の処理の見直しなどぜひしてみてください。